#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Core;
using Cephei.Core.Generic;
using Microsoft.FSharp.Core;
using Cephei.QL.Times;
namespace Cephei.QL.Times.Calendars
{
    /// <summary> 
	/// ! Depending on the chosen rule, this calendar has a set of business days given by either the union or the intersection of the sets of business days of the given calendars.  \ingroup calendars  \test the correctness of the returned results is tested by reproducing the calculations.
	/// </summary>
    [Guid ("D16BF179-6222-4ec9-8D46-727614367E82"),ComVisible(true)]
	public interface IJointCalendar : Cephei.QL.Times.ICalendar
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
    }   

    /// <summary> 
	/// ! Depending on the chosen rule, this calendar has a set of business days given by either the union or the intersection of the sets of business days of the given calendars.  \ingroup calendars  \test the correctness of the returned results is tested by reproducing the calculations. Factory
	/// </summary>
   	[ComVisible(true)]
    public interface IJointCalendar_Factory 
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        /// <summary> 
		/// 
		/// </summary>
	    IJointCalendar Create (Cephei.QL.Times.ICalendar c1, Cephei.QL.Times.ICalendar c2, Cephei.QL.Times.ICalendar c3, Cephei.QL.Times.ICalendar c4, Microsoft.FSharp.Core.FSharpOption<QL.Times.Calendars.JointCalendarRuleEnum> r);
        /// <summary> 
		/// 
		/// </summary>
	    IJointCalendar Create (Cephei.QL.Times.ICalendar c1, Cephei.QL.Times.ICalendar c2, Cephei.QL.Times.ICalendar c3, Microsoft.FSharp.Core.FSharpOption<QL.Times.Calendars.JointCalendarRuleEnum> r);
        /// <summary> 
		/// 
		/// </summary>
	    IJointCalendar Create (Cephei.QL.Times.ICalendar c1, Cephei.QL.Times.ICalendar c2, Microsoft.FSharp.Core.FSharpOption<QL.Times.Calendars.JointCalendarRuleEnum> r);
    }
}

